<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
<%@ taglib prefix='c' uri='http://java.sun.com/jsp/jstl/core' %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> 
<%
    /**
     * @Description :  VOC 등록
     * @Modification Information
     *
     *   수정일               수정자                   수정내용
     *  -------    --------    ---------------------------
     *
     *
     */
%>
<script type="text/javascript">
$(document).ready(function() {
    
    // 버튼
    $( "#btn_srchHistReg" ).click(function() { 
        event.preventDefault();
    });
    $( "#btn_srchPost" ).click(function() { 
        event.preventDefault();
    });
    $( "#btn_handInput" ).click(function() { 
        event.preventDefault();
    });
    $( "#btn_srchVoc" ).click(function() { 
        event.preventDefault();
    });
    $( "#btn_del" ).click(function() { 
        event.preventDefault();
    });
    $( "#btn_saveTemp" ).click(function() { // 임시저장
        //event.preventDefault();
        var rules = new VocRegistRules();
        rules.removeCommonRules(); // 공통 rules 제거
        rules.setupTypeResponseRules(); // 답변 방법에 따른 rules 처리
    });
    $( "#btn_saveReq" ).click(function() { // 접수요청 
    	 // vallidation rules setup
    	var rules = new VocRegistRules();
    	rules.setupTypeResponseRules(); // 답변 방법에 따른 rules 처리
    	rules.addCommonRules(); // 그외 공통 rules 
    });
    
    $("#btn_addFile").click(function() { // 파일추가
        var fileIndex = $('#fileTable tr').children().length;
        console.log(fileIndex);
        $('#fileTable').append(
                
                '<tr><td>'+
                '   <input type="file" id="attachFile['+ fileIndex +']" name="attachFile['+ fileIndex +']" />'+
                '</td></tr>');
        
        //var fileIndex = $('#fileTable tr').children().length - 1;
        /* $('#fileTable').append(
                '<tr><td>'+
                '   <input type="file" id="attachFile" name="attachFile" />'+
                '</td></tr>');   */     
    });
    
    /*$( "#btn_saveSelf" ).click(function() { // 본인처리
        event.preventDefault();
    
        var formData = new FormData($("#regform"));
        $.ajax({
            type : "post",
            mimeType:"multipart/form-data",
            url : "<c:url value="/voc/vocMyjobMngr/saveSelf"/>",
            dataType: "json",
            //data : $("#regform").serialize(), ==> 일반폼(파일업로드가 아닌)에 사용
            data : formData, //==> 파일업로드에 사용
            success : function(msg) {
            },
            error : function(xhr, status, error) {
                //alert("에러발생");
            },
            //contentType: "application/json",
        });
    });
    $( "#btn_saveTarget" ).click(function() { 
        event.preventDefault();
    });*/
    
    $( "#btn_saveSelf" ).click(function() { // 본인처리
        // vallidation rules setup
        var rules = new VocRegistRules();
        rules.setupTypeResponseRules(); // 답변 방법에 따른 rules 처리
        rules.addCommonRules(); // 그외 공통 rules 
        
        $("#regform").ajaxForm({
            //target:        '#output1',   // target element(s) to be updated with server response 
            url : "<c:url value="/voc/vocMyjobMngr/saveSelf"/>",
            type : "post",
            dataType : 'json', // script,json,xml
            cache: false,  
            beforeSubmit : function() { // pre-submit callback 
            },
            success : function(data, state) { // post-submit callback 
            	console.log("--- callback success ---");
            	console.log("data: " + data);
            	console.log("state: " + state);

            	alert("작업이 완료되었습니다.");
            },
            error: function(xhr, status, error) {
                console.log("--- callback error ---");
                var data = JSON.parse(xhr.responseText);
                if(data.errorCode == -1) {
                    alert("작업중 오류가 발생하였습니다. \n message:"+data.errorMessage);
                }
            }
            // other available options: 
            //url:       url         // override for form's 'action' attribute 
            //type:      type        // 'get' or 'post', override for form's 'method' attribute 
            //dataType:  null        // 'xml', 'script', or 'json' (expected server response type) 
            //clearForm: true        // clear all form fields after successful submit 
            //resetForm: true        // reset the form after successful submit          
            
        }); 
    });
    
//****************************
// Validation check......   
//****************************
    /**
     * validate rules 추가
     */
     var addDefaultRules = function(elements, label) {
    	 elements.each(function() {
             $(this).rules("add", {
                 required: true,
                 messages: {required: formatStr("{0}은(는) 필수입력입니다.",label) }
             });         
         });
     };
     
     /**
     * validate rules 제거
     */
     var removeDefaultRules = function(elements) {
         elements.each(function() {
             $(this).rules("remove", "required");         
         });
     };
    
    /**
    * Validate object
    */
    var VocRegistRules = function() {
        
        // 전화번호 체크 rules 추가
        this.addRulesTelGroup = function() {
            //tel_no, tel_no_cell 최소1개 체크
            var eitherors = $("#tel_no, #tel_no_cell");
            // define the required validation rule
            // will return true when all inputs are blank
            var requiredRule = function (el) {
              return eitherors
                .filter(function () { return $(this).val() !== "" })
                .length === 0;
            };
            
            eitherors.each(function () {
                  $(this).rules("add", {
                    required: requiredRule,
                    messages: { required: formatStr("{0}나 {1}을(를) 입력하셔야 합니다.","전화번호","휴대폰") }
                  });
            });        		
        };
        // 전화번호 체크 rules 삭제
        this.removeRulesTelGroup = function() {removeDefaultRules($("#tel_no, #tel_no_cell"));};
        
        // 발생일시 rules 추가
        this.addRulesHappenDate = function() {addDefaultRules($("#happen_date1, #happen_date2"), "발생일시");};
        // 발생일시 rules 삭제
        this.removeRulesHappenDate = function() {removeDefaultRules($("#happen_date1, #happen_date2"));};

        // 등록 channel rules 추가
        this.addRulesRegChannelType = function() {addDefaultRules($("#reg_channel_type"), "등록 channel");};
        // 등록 channel rules 삭제
        this.removeRulesRegChannelType = function() {removeDefaultRules($("#reg_channel_type"));};

        // 고객 유형 rules 추가
        this.addRulesCustomerType = function() {addDefaultRules($("#customer_type1, #customer_type2"), "고객유형");};
        // 고객 유형 rules 삭제
        this.removeRulesCustomerType = function() {removeDefaultRules($("#customer_type1, #customer_type2"));};

        // 요구 유형 rules 추가
        this.addRulesRequestType = function() {addDefaultRules($("#request_type"), "요구 유형");};
        // 요구 유형 rules 삭제
        this.removeRulesRequestType = function() {removeDefaultRules($("#request_type"));};

        // 서비스 유형 rules 추가
        this.addRulesServiceType = function() {addDefaultRules($("#service_type"), "서비스 유형");};
        // 서비스 유형 rules 삭제
        this.removeRulesServiceType = function() {removeDefaultRules($("#service_type"));};

        // 발생지 유형 rules 추가
        this.addRulesPlaceType = function() {addDefaultRules($("#place_type"), "발생지 유형");};
        // 발생지 유형 rules 삭제
        this.removeRulesPlaceType = function() {removeDefaultRules($("#place_type"));};

        // 공개 구분 rules 추가
        this.addRulesPublicType = function() {addDefaultRules($("#public_type"), "공개 구분");};
        // 공개 구분 rules 삭제
        this.removeRulesPublicType = function() {removeDefaultRules($("#public_type")); };       
        
        this.addCommonRules = function() {
        	this.addRulesHappenDate(); // 발생일시
        	this.addRulesRegChannelType(); // 등록 channel
        	this.addRulesCustomerType(); // 고객 유형
        	this.addRulesRequestType(); // 요구 유형
        	this.addRulesServiceType(); // 서비스 유형
        	this.addRulesPlaceType(); // 발생지 유형
        	this.addRulesPublicType(); // 공개 구분
        };
        this.removeCommonRules = function() {
            this.removeRulesHappenDate(); // 발생일시
            this.removeRulesRegChannelType(); // 등록 channel
            this.removeRulesCustomerType(); // 고객 유형
            this.removeRulesRequestType(); // 요구 유형
            this.removeRulesServiceType(); // 서비스 유형
            this.removeRulesPlaceType(); // 발생지 유형
            this.removeRulesPublicType(); // 공개 구분
        };
        
        // 답변 방법에 따른 rules 처리
        this.setupTypeResponseRules = function() {
            /* 답변불필요 체크off인 경우   */	
            if(! $("#no_resp_flag").prop("checked")) {
            	
            	//***********
            	// 이메일 체크시
            	//***********
                if($("#email_flag").prop("checked")) {
                    // email_id 필수체크
                	$("#email_id").val($("#email_id1").val() + "@"+ $("#email_id2").val());
                    
                    $("#email_id1, #email_id2").each(function() {
                        $(this).rules("add",{
                            required: true,
                            messages: {required: formatStr("{0}은(는) 필수입력입니다.","이메일"),}
                        });
                    });
                    
                    if($("#email_id1, #email_id2").valid()) { // email_id1,email_id2가 valid한 경우
                        $("#email_id").rules("add",{
                            required: true,
                            email: true,
                            messages: {
                                required: formatStr("{0}은(는) 필수입력입니다.","이메일"),
                                email: formatStr("{0}이(가) 유효하지 않습니다.","이메일"),
                            },
                        });
                    }
                } else {
                    // 이메일 required속성 제거, email속성은 유지           
                    $("#email_id").val($("#email_id1").val() + "@"+ $("#email_id2").val());
                    $("#email_id1, #email_id2").each(function() {
                        $(this).rules("remove", "required");
                    });
                    $("#email_id").rules("remove", "required");    
                }
                
                //***********
                // 전화 체크시
                //***********
                if($("#tel_flag").prop("checked")) {
                	this.addRulesTelGroup();
                } else {
    //@TODO alert 대체             	
                    if(! $("#visit_flag").prop("checked")) { // 방문체크 off인 경우에     
    //@TODO 전번 입력시 유효성 체크 추가           
                    	this.removeRulesTelGroup();
                    }
                }            
                
                //***********
                // 우편 체크시
                //***********
                if($("#post_flag").prop("checked")) {
                	//post_id 필수체크
                	//address_01,address_02 필수체크
                	$("#post_id, #address_01, #address_02").each(function() {
                	    var label = $(this).prop("id") == "post_id"? "우편번호":"주소";
                		
                	    $(this).rules("add", {
                	    	required: true,
                            messages: {required: formatStr("{0}은(는) 필수입력입니다.", label),}
                		});
                	});
                } else {
                	$("#post_id").rules("remove", "required");
                	
                	if(! $("#visit_flag").prop("checked")) { // 방문체크 off인 경우에     
                        $("#address_01, #address_02").each(function() {
                            $(this).rules("remove", "required");
                        });            		
                	}
                }
                
                //***********
                // 방문 체크시
                //***********             
                if($("#visit_flag").prop("checked")) {
                	//tel_no, tel_no_cell 최소1개 체크
                	//address_01,address_02 필수 체크
    //@TODO 전번 유효성 추가
                	// 1. 전번 체크
                    this.addRulesTelGroup();
    
    //@TODO 주소체크 로직 함수로 빼기            
                    // 2. 주소 체크
                    $("#address_01, #address_02").each(function() {
                        var label = $(this).prop("id") == "post_id"? "우편번호":"주소";
                        
                        $(this).rules("add", {
                            required: true,
                            messages: {required: formatStr("{0}은(는) 필수입력입니다.", label),}
                        });
                    });
                } else {
                	if(! $("#tel_flag").prop("checked")) { // 전화체크 off인 경우에
    //@TODO 전번 입력시 유효성 체크 추가  
                		this.removeRulesTelGroup();
                	}
                	if(! $("#post_flag").prop("checked")) { // 우편체크 off인 경우에
                		// 주소 required속성 제거
                        $("#address_01, #address_02").each(function() {
                            $(this).rules("remove", "required");
                        });
                	}
                }
            } 
            /* 답변불필요 체크on인 경우 */
            else 
            {
                // 이메일 required속성 제거, email속성은 유지         	
                $("#email_id").val($("#email_id1").val() + "@"+ $("#email_id2").val());
                $("#email_id1, #email_id2").each(function() {
                    $(this).rules("remove", "required");
                });
                $("#email_id").rules("remove", "required");
                
    //@TODO 전번 입력시 유효성 체크 추가           
                this.removeRulesTelGroup();
    
                // 우편번호, 주소 required속성 제거
                $("#post_id, #address_01, #address_02").each(function() {
                    $(this).rules("remove", "required");
                });
            }
        };            
    };
    
    $.validator.setDefaults({
    	  debug: false,
          ignore: [], // hidden 필드 체크하기 위한 옵션
    }); 
    
    // regform validation
    $("#regform").validate({
        rules: {
        },        
        messages: {
        },
        submitHandler: function(form) { // Callback for handling the actual submit when the form is valid
            
            //@TODO Modal confirm 공통으로 빼기                           
            $( "#modal_confirm" ).dialog({
                resizable: false,
                height:140,
                modal: true,
                buttons: {
                    "Save": function() {
                    	$( this ).dialog( "close" );    
                    	
//@TODO BLOCKING UI 공통으로 빼기
                        // UI blocking
                        $("#popup_vocreg").block({
                            message: '<img src="<c:url value='/resources/images/busy.gif'/>"/>Please Wait..',
                            fadeIn: 0,
                            fadeOut: 0,
                            css:{
                                border: '1px solid #47A4CB',
                                backgroundColor: '#E6E6E6',
                            },
                            overlayCSS:  {  
                                    opacity: 0.3, 
                                    cursor: 'wait' 
                            },
                        });                        
////////////////////////////////// ajaxSubmit start               
                        $("#regform").ajaxSubmit({
                            //target:        '#output1',   // target element(s) to be updated with server response 
                            url : "<c:url value="/voc/vocMyjobMngr/saveReq"/>",
                            type : "post",
                            dataType : 'json', // script,json,xml
                            cache: false,
                            complete: function() {  
                            },            
                            beforeSend: function() {
                            },
                            beforeSubmit : function(e) { // pre-submit callback
                            },
                            success : function(data, state) { // post-submit callback
                                console.log("--- callback success ---");
                                console.log("data: " + data);
                                console.log("state: " + state);
                
                                 /* $("#fileTable").children().each(function(idx) {
                                     var html =  "<td>" + data.attachFiles[idx].originFileName + "</td>";
                                         html += "<td><button type='button' name='btn_delFile"+idx+"' id='btn_delFile"+idx+"'alt='삭제'>삭제</button></td>";
                                     $(this).html(html);
                                 }); */
                                 
                                 $("#fileTable").html("");
                                 
                                 for(var i=0; i< data.attachFiles.length; i++) {
                                     var html =  "<tr>\n";
                                         html += "    <td>" + data.attachFiles[i].originFileName + "</td>\n";
                                         html += "    <td><button type='button' name='btn_delFile"+i+"' id='btn_delFile"+i+"'alt='삭제'>삭제</button></td>\n";
                                         html += "</tr>\n";
                                     $("#fileTable").append(html);
                                 }
                                
                //@TODO BLOCKING UI 공통으로 빼기
                // UI blocking 해제                
                                $("#popup_vocreg").unblock();
                                //alert("작업이 완료되었습니다.");
                                //====>
                                $( "#modal_success" ).dialog({
                                	buttons: {
                                		"Close": function() {
                                			$( this ).dialog( "close" );
                                		}
                                	}
                                });
                            },
                                
                            error: function(xhr, status, error) { // exception 발생시 콜백 
                                console.log("--- callback error ---");              
                //@TODO BLOCKING UI 공통으로 빼기
                // UI blocking 해제                
                                $("#popup_vocreg").unblock();            
                            
                            
                                var data = JSON.parse(xhr.responseText);
                                if(data.errorCode == -1) {
                                    //alert("작업중 오류가 발생하였습니다. \n message:"+data.errorMessage);
                                    //====>
                                    
                                    
                                    var html = '<span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>';
                                        html += "Error: \n" + data.errorMessage;
                                    
                                    $( "#modal_fail p" ).html(html);
                                    $( "#modal_fail" ).dialog({
                                        buttons: {
                                            "Close": function() {
                                                $( this ).dialog( "close" );
                                            }
                                        }
                                    });
                                }
                                
                                
                            }
                            // other available options: 
                            //url:       url         // override for form's 'action' attribute 
                            //type:      type        // 'get' or 'post', override for form's 'method' attribute 
                            //dataType:  null        // 'xml', 'script', or 'json' (expected server response type) 
                            //clearForm: true        // clear all form fields after successful submit 
                            //resetForm: true        // reset the form after successful submit          
                        }); 
                        
                        // !!! Important !!! 
                        // always return false to prevent standard browser submit and page navigation 
                        return false; 
//////////////////////////////////ajaxSubmit  end 
                    },
                    Cancel: function() {
                        $( this ).dialog( "close" );
                    },
                }
            });       	
        },
        /*showErrors:function(errorMap, errorList){
            this.defaultShowErrors();
        },*/
        invalidHandler: function(event, validator) {
            var errors = validator.numberOfInvalids();
            if (errors) {
              var message = errors == 1
                ? 'You missed 1 field. It has been highlighted'
                : 'You missed ' + errors + ' fields. They have been highlighted';
              alert(validator.errorList[0].message);
            }
        }       
    });

////////////////////////    
    
    /*var validRules = function() {
    	//var rules = {};
        // 답변 방법 체크된  갯수 
        var chkCount = 0; 
        $("#email_flag,#tel_flag,#post_flag").each(function() {
            $(this).prop("checked")? ++chkCount:"";
        });
        
        if(chkCount > 0) {
            if($("#email_flag").prop("checked")) { //이메일 체크시
            	$("#email_id").val($("#email_id1").val() + "@"+ $("#email_id2").val());
                
                $("#email_id1, #email_id2").rules("add",{
                    required: true,
                    messages: {
                        required: "required email_id 1or2",
                        //minlength: jQuery.format("Please, at least {0} characters are necessary")
                    },
                });
                $("#email_id").rules("add",{
                    required: true,
                    email: true,
                    messages: {
                        required: "required email_id",
                        email: "required valid email",
                        //minlength: jQuery.format("Please, at least {0} characters are necessary")
                    },
                });
            }
        }
           
        //return rules;
    };
    $("#regform").validate({
    	rules: validRules(),
    	
    	invalidHandler: function(event, validator) {
            var errors = validator.numberOfInvalids();
            if (errors) {
              var message = errors == 1
                ? 'You missed 1 field. It has been highlighted'
                : 'You missed ' + errors + ' fields. They have been highlighted';
              alert(validator.errorList[0].message);
            }
        }
    });*/
    
    // 답변 방법에 따른 체크
    var olab_email_id = $("#lab_email_id").text(); // 원본라벨-이메일 ID
    var olab_tel_no = $("#lab_tel_no").text(); // 원본라벨-전화번호(일반)
    var olab_tel_no_cell = $("#lab_tel_no_cell").text(); // 원본라벨-전화번호(휴대폰) 
    var olab_post_id = $("#lab_post_id").text(); // 원본라벨-우편번호
    var olab_post_address = $("#lab_post_address").text(); // 원본라벨-주소
    var olab_no_resp_type = $("#lab_no_resp_type").text(); // 원본라벨-답변 불필요 사유
    
    $("#email_flag").change(function() { // 답변방법-이메일 클릭
        if(this.checked) {
            $("#lab_email_id").css("color","red")
               .text("* "+olab_email_id);
        } else {
            $("#lab_email_id").css("color","")
               .text(olab_email_id);
        }
    });
    $("#tel_flag").change(function() { // 답변방법-전화 클릭
        if(this.checked) {
                $("#lab_tel_no,#lab_tel_no_cell").css("color","blue");
                $("#lab_tel_no").text("* "+olab_tel_no);   
                $("#lab_tel_no_cell").text("* "+olab_tel_no_cell);   
        } else {
                if($("#visit_flag").prop("checked")) { // 답변방법-방문이 체크된 경우                          
                }
                else { // 답변방법-방문이 체크되어있지않은 경우                          
                    $("#lab_tel_no,#lab_tel_no_cell").css("color","");
                    $("#lab_tel_no").text(olab_tel_no);   
                    $("#lab_tel_no_cell").text(olab_tel_no_cell);
                }
        } 
    });
    $("#post_flag").change(function() { // 답변방법-우편 클릭
        if(this.checked) {
            $("#lab_post_id").css("color","red");
            $("#lab_post_address").css("color","red");
            $("#lab_post_id").text("* "+olab_post_id);   
            $("#lab_post_address").text("* "+olab_post_address);   
        } else {
            if($("#visit_flag").prop("checked")) {          
                $("#lab_post_id").css("color","");
                $("#lab_post_id").text(olab_post_id);   
            }   
            else {         
                $("#lab_post_id").css("color","");
                $("#lab_post_address").css("color","");
                $("#lab_post_id").text(olab_post_id);   
                $("#lab_post_address").text(olab_post_address); 
            }
        }
    });
    $("#visit_flag").change(function() { // 답변방법-방문 클릭
        if(this.checked) {
            $("#lab_post_address,#lab_tel_no_cell,#lab_tel_no").css("color","blue");
            $("#lab_tel_no").text("* "+olab_tel_no);   
            $("#lab_tel_no_cell").text("* "+olab_tel_no_cell);   
            $("#lab_post_address").text("* "+olab_post_address);   
        } else {
            if($("#tel_flag").prop("checked") && !$("#post_flag").prop("checked")) 
            {
                $("#lab_post_id, #lab_post_address").css("color","");
                $("#lab_post_id").text(olab_post_id);
                $("#lab_post_address").text(olab_post_address); 
            }
            else if(!$("#tel_flag").prop("checked") && $("#post_flag").prop("checked")) 
            {
                $("#lab_tel_no, #lab_tel_no_cell").css("color","");
                $("#lab_tel_no").text(olab_tel_no);
                $("#lab_tel_no_cell").text(olab_tel_no_cell);   
            }
            else if(!$("#tel_flag").prop("checked") && !$("#post_flag").prop("checked")) 
            {
                $("#lab_post_id, #lab_post_address, #lab_tel_no, #lab_tel_no_cell").css("color","");
                $("#lab_post_id").text(olab_post_id);
                $("#lab_post_address").text(olab_post_address); 
                $("#lab_tel_no").text(olab_tel_no);
                $("#lab_tel_no_cell").text(olab_tel_no_cell);   
            }
        }
    });
    $("#email_flag,#tel_flag,#post_flag,#visit_flag").change(function() { 
        if($(this).prop("checked")) {
               $("#no_resp_flag").prop("checked", false).change();
        }       
    });
    
    $("#no_resp_flag").change(function() { // 답변방법-답변불필요 클릭
        if(this.checked) {
            $("#email_flag,#tel_flag,#post_flag,#visit_flag").each(function() {
                   $(this).prop("checked",false).change();                  
            });
            
            $("#email_id1,#email_id2,#tel_no,#tel_no_cell,#post_id,#btn_srchPost,#btn_handInput,#address_01,#address_02")
               .attr("disabled",true); // 비활성
            
            $("#lab_no_resp_type").css("color","red");
            $("#lab_no_resp_type").text("* "+olab_no_resp_type);
        } else {
            $("#email_id1,#email_id2,#tel_no,#tel_no_cell,#post_id,#btn_srchPost,#btn_handInput,#address_01,#address_02")
                .attr("disabled",false);
            
            $("#lab_no_resp_type").css("color","");
            $("#lab_no_resp_type").text(olab_no_resp_type);   
        }
    }); 
    
//****************************
// Common code select......   
//****************************  
    // 공통코드 조회
    /*$.ajax({
        type : "post",
        url : "<c:url value="/common/selectCommonCode"/>",
        dataType: "json",
        data : {cd_class: "MAIL_ADDRESS"},
        success : function(data, state) {
            console.log("--- callback success ---");
            console.log("data: " + data);
            console.log("state: " + state);
            
//@TODO 코드명을 로케일 코드명으로 변경            
            $.each(data, function(index, element) {
                $("#change_email").append("<option value='"+element.CD_DATA+"' "+(index==0? "selected":"")+" >" + 
                    element.CD_NM_KO + 
                    "</option>");
            });
            
        },
        error : function(xhr, status, error) {
            console.log("--- callback error ---");
            var data = JSON.parse(xhr.responseText);
            if(data.errorCode == -1) {
                alert("작업중 오류가 발생하였습니다. \n message:"+data.errorMessage);
            }  
        },
    });*/
    //====> 공통코드 펑션으로 변경
    
    // email 주소
    var options1 = {
            data:"MAIL_ADDRESS",
            success:VocRegistCallback.respChangeEmail,
            //error:vocRegistMngr.initChangeEmail,
    };
    ajaxCommonCode(options1);
    
    //:::::::::::::::::::::::::::::::::::::::::::::::
    //=====> 디폴트콜백으로 결과 바인드
    //:::::::::::::::::::::::::::::::::::::::::::::::
    // 답변 불필요 사유
    var options2 = {
            data:"NO_RESPONSE_TYPE",
            selector: "#no_resp_type",
    };
    ajaxCommonCode(options2);

    // voc등급
    var options3 = {
            data:"VOC_GRADE",
            selector: "#voc_grade",
    };
    ajaxCommonCode(options3);

//@TODO 코드 임시로 지정됨     
    // 등록채널
    var options4 = {
            data:"CHANNEL_TYPE",
            selector: "#reg_channel_type", // 바인드할 컨트롤
    };
    ajaxCommonCode(options4);
    
    // 고객유형1
    var options5 = {
            data:"CHANNEL_TYPE",
            selector: "#customer_type1", // 바인드할 컨트롤
    };
    ajaxCommonCode(options5);
    
    // 고객유형2
    var options6 = {
            data:"CHANNEL_TYPE",
            selector: "#customer_type2", // 바인드할 컨트롤
    };
    ajaxCommonCode(options6);
    
    // 요구유형
    var options7 = {
            data:"CHANNEL_TYPE",
            selector: "#request_type", // 바인드할 컨트롤
    };
    ajaxCommonCode(options7);
    
    // 서비스유형
    var options8 = {
            data:"CHANNEL_TYPE",
            selector: "#service_type", // 바인드할 컨트롤
    };
    ajaxCommonCode(options8);    
    
    // 발생지유형
    var options9 = {
            data:"CHANNEL_TYPE",
            selector: "#place_type", // 바인드할 컨트롤
    };
    ajaxCommonCode(options9);    
});

/**
 * Callback object
 */
var VocRegistCallback = {
    // email 주소
    respChangeEmail: function(data, state) {
        console.log("--- callback success ---");
        console.log("data: " + data);
        console.log("state: " + state);
        
        var cdNamCol = commonCdNmI18n(); // i18n다국어 컬럼 적용
        $.each(data, function(index, element) {
            $("#change_email").append("<option value='"+element.CD_DATA+"' "+(index==0? "selected":"")+" >" + 
                eval("element." + cdNamCol) + 
                "</option>");
        });
    },
};
</script>

<form id="regform" name="regform" enctype="multipart/form-data">
    <input type="hidden" name="email_id" id="email_id">
    
    <table summary="" style="width:100%;margin:1px;">
        <colgroup>
            <col width="15%"/>
            <col width="50%"/>
            <col width="18%"/>
            <col />
        </colgroup>
        <tbody>
            <tr>
                <td>
                    <label for="happen_date1" id="lab_happen_date">* 발생 일시</label>
                </td>    
                <td>
                    <input id="happen_date1" name="happen_date1" type="text" style="width:80px;"/>
                    <input id="happen_date2" name="happen_date2" type="text" style="width:40px;"/>
                </td>
                <td>
                    <label for="reg_channel_type" id="lab_reg_channel_type">* 등록 채널</label>
                </td>
                <td>
                    <select id="reg_channel_type" name="reg_channel_type">
                            <option selected="selected"></option>
                    </select>                   
                </td>       
            </tr>
            <tr>
                <td>
                    <label for="question_title" id="lab_question_title">* 제목</label>
                </td> 
                <td colspan="3">
                    <input id="question_title" name="question_title" type="text"/>
                </td>                 
            </tr>
            <tr>
                <td>
                    <label for="content" id="lab_content">* VOC 내용</label>
                </td>    
                <td colspan="3">
                    <textarea style="width:100%;height:70px" id="content" name="content"></textarea>
                </td>
            </tr>        
            <tr>
                <td>
                    <label for="attachFile" id="lab_attachFile">첨부 파일</label>
                </td> 
                <td colspan="3">
                   <input id="btn_addFile" name="btn_addFile" type="button" value="+" />
                    <table id="fileTable"> 
                       <tr>
                           <td><input type="file" id="attachFile[0]" name="attachFile[0]"/></td>
                       </tr>    
                    </table>
                </td>                 
            </tr>        
            <tr>
                <td>
                    <label for="content" id="lab_content">등록자 의견</label>
                </td>    
                <td colspan="3">   
                    <textarea style="width:100%;height:70px" id="content" name="content"></textarea>
                </td>
            </tr>   
            <tr>
                <td>
                    <label for="sms_flag" id="lab_sms_flag">SMS 수신</label>
                </td>    
                <td colspan="3">
                    <input type="checkbox" id="sms_flag" name="sms_flag" value="Y"> 
                    <label for="sms_flag" id="lab_sms_flag2">고객이 VOC 처리 상대에 대해 SMS 알림 수신을 희망함</label>
                </td>
            </tr>   
            <tr>
                <td>
                    <label for="" id="lab_type_response">* 답변 방법</label>
                </td>    
                <td colspan="2">
                    <input type="checkbox" id="email_flag" name="email_flag" value="Y"> <label for="email_flag" id="lab_email_flag">이메일</label>
                    <input type="checkbox" id="tel_flag" name="tel_flag" value="Y"> <label for="tel_flag" id="lab_tel_flag">전화</label>
                    <input type="checkbox" id="post_flag" name="post_flag" value="Y"> <label for="post_flag" id="lab_post_flag">우편</label>
                    <input type="checkbox" id="visit_flag" name="visit_flag" value="Y"> <label for="visit_flag" id="lab_visit_flag">방문</label>
                    <input type="checkbox" id="no_resp_flag" name="no_resp_flag" value="Y"> <label for="no_resp_flag" id="lab_no_resp_flag">답변 불필요</label>
                </td>
                <td>
                    <label for="no_resp_type" id="lab_no_resp_type">답변 불필요 사유</label>
                    <select id="no_resp_type" name="no_resp_type">
                    </select>
                </td>             
            </tr>   
            <tr>
                <td>
                    <label for="customer_type1" id="lab_customer_type">* 고객유형</label>
                </td>    
                <td>
                    <select id="customer_type1" name="customer_type1">
                            <option selected="selected"></option>
                    </select>
                    <select id="customer_type2" name="customer_type2">
                            <option selected="selected"></option>
                    </select>
                </td>
                <td>
                    <label for="tel_no" id="lab_tel_no">전화번호(일반)</label>
                </td>             
                <td>
                    <input id="tel_no" name="tel_no" type="text" class="tel_group"/>
                </td>             
            </tr>   
            <tr>
                <td>
                    <label for="customer_name" id="lab_customer_name">고객성명</label>
                </td>    
                <td>
                    <input id="customer_name" name="customer_name" type="text" style="width:100px;"/>
                    <input type="checkbox" id="anonymous_type" name="anonymous_type"  value="Y"> <label for="anonymous_type" id="lab_anonymous_type">익명 처리 요청</label>
                    <button id="btn_srchHistReg">이력조회</button>
                </td>
                <td>
                    <label for="tel_no_cell" id="lab_tel_no_cell">전화번호(휴대폰)</label>
                </td>             
                <td>
                    <input id="tel_no_cell" name="tel_no_cell" type="text" class="tel_group"/>
                </td>             
            </tr>   
            <tr>
                <td>
                    <label for="email_id1" id="lab_email_id">이메일 ID</label>
                </td>    
                <td colspan="3">
                    <input id="email_id1" name="email_id1" type="text"/>@<input id="email_id2" name="email_id2" type="text"/>
                    <select id="change_email" name="change_email">
                    </select>
                </td>
            </tr>                 
            <tr>
                <td>
                    <label for="post_id" id="lab_post_id">우편번호</label>
                </td>    
                <td colspan="3">
                    <input id="post_id" name="post_id" type="text"/>
                    <button id="btn_srchPost">찾기</button><button id="btn_handInput">직접 입력</button>
                </td>
            </tr>                 
            <tr>
                <td>
                    <label for="" id="lab_post_address">주소</label>
                </td>    
                <td colspan="3">
                    <input id="address_01" name="address_01" type="text" style="width:50%;"/>
                    <input id="address_02" name="address_02" type="text" style="width:45%;"/>
                </td>
            </tr>                 
            <tr>
                <td>
                    <label for="request_type" id="lab_request_type">* 요구 유형</label>
                </td>    
                <td>
                    <select id="request_type" name="request_type">
                            <option selected="selected"></option>
                    </select>
                </td>
                <td>
                    <label for="voc_grade" id="lab_voc_grade">VOC 등급</label>
                </td>    
                <td>
                    <select id="voc_grade" name="voc_grade">
                    </select>
                </td>
            </tr>         
            <tr>
                <td>
                    <label for="service_type" id="lab_service_type">* 서비스 유형</label>
                </td>    
                <td>
                    <select id="service_type" name="service_type">
                            <option selected="selected"></option>
                    </select>
                </td>
                <td>
                    <label for="public_type" id="lab_public_type">공개 구분</label>
                </td>    
                <td>
                    <input type="radio" id="public_type" name="public_type" value="PUBLIC"/>공개
                    <input type="radio" id="public_type" name="public_type" value="CLOSE"/>비공개
                </td>
            </tr>         
            <tr>
                <td>
                    <label for="place_type" id="lab_place_type">* 발생지 유형</label>
                </td>    
                <td>
                    <select id="place_type" name="place_type">
                        <option selected="selected"></option>
                    </select>
                </td>
                <td>
                    <label for="main_voc_id" id="lab_main_voc_id">2차 VOC</label>
                </td>    
                <td>
                    <input id="main_voc_id" name="main_voc_id" type="text" style="width:80px;"/>
                    <button id="btn_srchVoc">찾기</button>
                </td>
            </tr> 
            <tr>
                <td colspan="4" style="text-align:center">
                    <button id="btn_del" name="btn_del">삭제</button>
                    <button id="btn_saveTemp" name="btn_saveTemp">임시 저장</button>
                    <button id="btn_saveReq" name="btn_saveReq">접수 요청</button>
                    <button id="btn_saveSelf" name="btn_saveSelf">본인 처리</button>
                    <button id="btn_saveTarget" name="btn_saveTarget">부서/처리자 지정</button>
                </td>
            </tr>                 
        </tbody>
    </table> 
</form>   
